/************************************************************************************
**  
* @copyright (c) 2015-, ChengDu Westone Technology Co., LTD. All Right Reserved.
*
*************************************************************************************/
/**
* @file	    wdpi_if_dev.cpp
* @version     
* @brief      
* @author
* @date     2013-03-31
* @note 
*
*  1. 2015-03-31 wangwei created this file
* 
*/
#include <string>
#include <duye_if_dev.h>

namespace duye {

bool NetIfDevMgr::getInterfaceList(NetIfDevList& netIfDevs) {
	// if (retVal == NO_ERROR) {
	// 	PIP_ADAPTER_INFO pAdapter = pAdapterInfo;
	// 	while (pAdapter)
	// 	{
	// 		NetIfDev netIfDev;
	// 		netIfDev.setName((const char*)pAdapter->AdapterName);
	// 		netIfDev.setDesc((const char*)pAdapter->Description);
	// 		std::string ifId = "\\Device\\NPF_" + netIfDev.getName();
	// 		netIfDev.setIfId(ifId);

	// 		// mac
	// 		uint8 macStr[18] = {0};
	// 		sprintf_s((char*)macStr, 18, "%02x-%02x-%02x-%02x-%02x-%02x",
	// 			pAdapter->Address[0],
	// 			pAdapter->Address[1],
	// 			pAdapter->Address[2],
	// 			pAdapter->Address[3],
	// 			pAdapter->Address[4],
	// 			pAdapter->Address[5]);

	// 		netIfDev.setMac((const char*)macStr);
	// 		netIfDev.setIP((const char*)pAdapter->IpAddressList.IpAddress.String);
	// 		netIfDev.setMask((const char*)pAdapter->IpAddressList.IpMask.String);
	// 		netIfDev.setGateway((const char*)pAdapter->GatewayList.IpAddress.String);
	// 		netIfDev.setEnabled(pAdapter->HaveWins == 0 ? true : false);

	// 		netIfDevs.push_back(netIfDev);

	// 		pAdapter = pAdapter->Next;
	// 	}
	// }

	// free(pAdapterInfo);

	return true;
}

bool NetIfDevMgr::getInterface(const std::string& ifDesc, NetIfDev& ifDev) {
	// wdpi::sys::NetIfDevMgr netIfDevMgr;
	// wdpi::sys::NetIfDevList netIfDevs;
	// if (!netIfDevMgr.getInterfaceList(netIfDevs))
	// {
	// 	return false;
	// }

	// uint32 n = 1;
	// for (auto iter = netIfDevs.begin(); iter != netIfDevs.end(); ++iter)
	// {
	// 	if ((iter->getName().find(ifDesc) != std::string::npos) ||
	// 		(iter->getDesc().find(ifDesc) != std::string::npos) || 
	// 		(iter->getIfId().find(ifDesc) != std::string::npos))
	// 	{
	// 		ifDev = *iter;
	// 		return true;
	// 	}
	// }

	return false;
}

}
